
import java.awt.Color;
import java.util.Vector;

public class explosion {

    private Vector<point> punkte = new Vector<point>();
    public int stufe = 0,  x = 0,  y = 0;

    public explosion(int x, int y) {
        punkte.add(new point(x, y, Color.RED));
        this.x = x;
        this.y = y;
    }

    public void weiter() {
        switch (this.stufe) {
            case 0:
                getPunkte().add(new point(x - 1, y - 1, Color.RED));
                getPunkte().add(new point(x + 1, y - 1, Color.RED));

                getPunkte().add(new point(x - 1, y , new Color(214,198, 16)));
                getPunkte().add(new point(x + 1, y , new Color(214,198, 16)));

                getPunkte().add(new point(x - 1, y + 1, Color.BLACK));
                getPunkte().add(new point(x + 1, y + 1, Color.BLACK));

                this.stufe++;
                break;
            case 1:
                getPunkte().add(new point(x - 2, y - 2, Color.RED));
                getPunkte().add(new point(x + 2, y - 2, Color.RED));

                getPunkte().add(new point(x - 2, y +1, new Color(214,198, 16)));
                getPunkte().add(new point(x + 2, y +1, new Color(214,198, 16)));

                getPunkte().add(new point(x - 2, y + 2, Color.BLACK));
                getPunkte().add(new point(x + 2, y + 2, Color.BLACK));

                this.stufe++;
                break;
            case 2:
                getPunkte().add(new point(x - 3, y - 3, Color.RED));
                getPunkte().add(new point(x + 3, y - 3, Color.RED));
                this.stufe++;
                break;
            case 3:
                getPunkte().add(new point(x - 4, y - 3, Color.RED));
                getPunkte().add(new point(x + 4, y - 3, Color.RED));
                this.stufe++;
                break;
            case 4:
                getPunkte().add(new point(x - 5, y - 2, Color.RED));
                getPunkte().add(new point(x + 5, y - 2, Color.RED));
                this.stufe++;
                break;
            case 5:
                getPunkte().add(new point(x - 6, y - 1, Color.RED));
                getPunkte().add(new point(x + 6, y - 1, Color.RED));
                this.stufe++;
                break;
            case 6:
                getPunkte().add(new point(x - 6, y , Color.RED));
                getPunkte().add(new point(x + 6, y , Color.RED));
                this.stufe++;
                break;
            case 7:
                getPunkte().add(new point(x - 6, y + 1, Color.RED));
                getPunkte().add(new point(x + 6, y + 1, Color.RED));
                this.stufe++;
                break;
            case 8:
                /**
                 * letzter Schritt!
                 *
                 * Hier wird der Vector geleert damit das
                 * objekt nichts mehr zum Zeichnen hat und
                 * das Objekt in dem ownvanvas explosionen
                 * Vector gelöscht werden kann.
                 */
                this.punkte.clear();
                break;
        }
    }

    /**
     * automatisch generierte Getter/Setter
     */

    /**
     * @return the punkte
     */
    public Vector<point> getPunkte() {
        return punkte;
    }

    /**
     * @param punkte the punkte to set
     */
    public void setPunkte(Vector<point> punkte) {
        this.punkte = punkte;
    }
}
